package dancetiktokenumsmongo

const (
	DanceComposeToolChangeLogChangeTypeAdd     = 1 //增加
	DanceComposeToolChangeLogChangeTypeReduced = 2 //减少

	DanceComposeToolChangeLogSourceDirectDrawPrize                        = 1  //抽奖直接获得
	DanceComposeToolChangeLogSourceRankSingle                             = 2  //单人世界榜获得
	DanceComposeToolChangeLogSourceRankCouple                             = 3  //双人排行榜获得
	DanceComposeToolChangeLogSourceHistoryOnceClear                       = 4  //双人历史排行榜获得
	DanceComposeToolChangeLogSourcePieceExchange                          = 5  //碎片兑换获得
	DanceComposeToolChangeLogSourcePropResolve                            = 6  //道具分解
	DanceComposeToolChangeLogSourceBuyShopMallGoodAdd                     = 7  // 购买商品增加
	DanceComposeToolChangeLogSourceOpenTreasureBoxAdd                     = 8  // 开宝箱增加
	DanceComposeToolChangeLogSourceEndMiningAdd                           = 9  // 结束挖矿发放奖励
	DanceComposeToolChangeLogSourceTripActivity                           = 10 // 旅途活动
	DanceComposeToolChangeLogSourcePropValidityPeriodGive                 = 11 //道具时长赠送
	DanceComposeToolChangeLogSourcePetPowerRankingAdd                     = 12 // 用户战力结算奖励
	DanceComposeToolChangeLogSourceSwipeGiftsGivePropsActivity            = 13 // 刷礼物送道具活动
	DanceComposeToolChangeLogSourceMysticalShopRoomBuy                    = 14 // 神秘商店直播间购买
	DanceComposeToolChangeLogSourceAnniversaryActivityFortuneCardPrize    = 15 // 周年庆活动集福卡奖励
	DanceComposeToolChangeLogSourceAnniversaryActivityFortuneCardCompound = 16 // 周年庆活动合成福卡
	DanceComposeToolChangeLogSourceScoreActivity                          = 17 // 星光值活动
	DanceComposeToolChangeLogSourceHourRank                               = 18 // 小时榜发放
	DanceComposeToolChangeLogSourceDayRank                                = 19 // 日榜发放
	DanceComposeToolChangeLogSourceWeekRank                               = 20 // 周榜发放
	DanceComposeToolChangeLogSourceOnHoldEndReward                        = 21 // 队伍挂机结束发放奖励
)

type DanceComposeToolChangeLogEnums struct {
}

var DanceComposeToolChangeLogEnumsObject DanceComposeToolChangeLogEnums

func (e DanceComposeToolChangeLogEnums) SourceType() []int {
	return []int{
		DanceComposeToolChangeLogSourceDirectDrawPrize,
		DanceComposeToolChangeLogSourceRankSingle,
		DanceComposeToolChangeLogSourceRankCouple,
		DanceComposeToolChangeLogSourceHistoryOnceClear,
		DanceComposeToolChangeLogSourcePieceExchange,
		DanceComposeToolChangeLogSourcePropResolve,
		DanceComposeToolChangeLogSourceBuyShopMallGoodAdd,
		DanceComposeToolChangeLogSourceOpenTreasureBoxAdd,
		DanceComposeToolChangeLogSourceEndMiningAdd,
		DanceComposeToolChangeLogSourceTripActivity,
		DanceComposeToolChangeLogSourcePropValidityPeriodGive,
		DanceComposeToolChangeLogSourcePetPowerRankingAdd,
		DanceComposeToolChangeLogSourceSwipeGiftsGivePropsActivity,
		DanceComposeToolChangeLogSourceMysticalShopRoomBuy,
		DanceComposeToolChangeLogSourceAnniversaryActivityFortuneCardPrize,
		DanceComposeToolChangeLogSourceAnniversaryActivityFortuneCardCompound,
		DanceComposeToolChangeLogSourceScoreActivity,
		DanceComposeToolChangeLogSourceHourRank,
		DanceComposeToolChangeLogSourceDayRank,
		DanceComposeToolChangeLogSourceWeekRank,
		DanceComposeToolChangeLogSourceOnHoldEndReward,
	}
}

func (e DanceComposeToolChangeLogEnums) SourceMap() map[int]string {
	m := make(map[int]string)
	for _, s := range e.SourceType() {
		m[s] = e.SourceString(s)
	}
	return m
}

func (e DanceComposeToolChangeLogEnums) SourceString(tag int) string {
	switch tag {
	case DanceComposeToolChangeLogSourceDirectDrawPrize:
		return "抽奖直接获得"
	case DanceComposeToolChangeLogSourceRankSingle:
		return "单人世界榜获得"
	case DanceComposeToolChangeLogSourceRankCouple:
		return "双人排行榜获得"
	case DanceComposeToolChangeLogSourceHistoryOnceClear:
		return "双人历史排行榜获得"
	case DanceComposeToolChangeLogSourcePieceExchange:
		return "碎片兑换获得"
	case DanceComposeToolChangeLogSourcePropResolve:
		return "道具分解"
	case DanceComposeToolChangeLogSourceBuyShopMallGoodAdd:
		return "购买商品增加"
	case DanceComposeToolChangeLogSourceOpenTreasureBoxAdd:
		return "开宝箱增加"
	case DanceComposeToolChangeLogSourceEndMiningAdd:
		return "结束挖矿发放奖励"
	case DanceComposeToolChangeLogSourceTripActivity:
		return "旅途活动"
	case DanceComposeToolChangeLogSourcePropValidityPeriodGive:
		return "道具时长赠送"
	case DanceComposeToolChangeLogSourcePetPowerRankingAdd:
		return "战力结算发放"
	case DanceComposeToolChangeLogSourceSwipeGiftsGivePropsActivity:
		return "刷礼物送道具活动"
	case DanceComposeToolChangeLogSourceMysticalShopRoomBuy:
		return "神秘商店直播间购买"
	case DanceComposeToolChangeLogSourceAnniversaryActivityFortuneCardPrize:
		return "周年庆活动集福卡奖励"
	case DanceComposeToolChangeLogSourceAnniversaryActivityFortuneCardCompound:
		return "周年庆活动合成福卡"
	case DanceComposeToolChangeLogSourceScoreActivity:
		return "星光值活动"
	case DanceComposeToolChangeLogSourceHourRank:
		return "小时榜发放"
	case DanceComposeToolChangeLogSourceDayRank:
		return "日榜发放"
	case DanceComposeToolChangeLogSourceWeekRank:
		return "周榜发放"
	case DanceComposeToolChangeLogSourceOnHoldEndReward:
		return "队伍挂机结束发放奖励"
	default:
		return "其他"
	}
}

func (e DanceComposeToolChangeLogEnums) ChangeType() []int {
	return []int{
		DanceComposeToolChangeLogChangeTypeAdd,
		DanceComposeToolChangeLogChangeTypeReduced,
	}
}

func (e DanceComposeToolChangeLogEnums) ChangeTypeMap() map[int]string {
	m := make(map[int]string)
	for _, s := range e.ChangeType() {
		m[s] = e.ChangeTypeString(s)
	}
	return m
}

func (e DanceComposeToolChangeLogEnums) ChangeTypeString(tag int) string {
	switch tag {
	case DanceComposeToolChangeLogChangeTypeAdd:
		return "增加"
	case DanceComposeToolChangeLogChangeTypeReduced:
		return "减少"
	default:
		return "其他"
	}
}
